sql server 与 oracle语法对比. |
您所在的位置:网站首页 › sqlserver 取整数 › sql server 与 oracle语法对比. |
ORACLE与SQL SERVER语法区别
一、数据类型 ORACLE与SQL SERVER在数据类型的对比如下:
SQL SERVER ORACLE 数字类型 DECIMAL[(P[, S])] NUMBER[(P[, S])] NUMERIC[(P[, S])] NUMBER[(P[, S])] FLOAT[(N)] NUMBER[(N)] INT NUMBER SMALLINT NUMBER TINYINT NUMBER MONEY NUMBER[19,4] SMALLMONEY NUMBER[19,4] 字符类型 CHAR[(N)] CHAR[(N)] VARCHAR[(N)] VARCHAR2[(N)] 日期时间类型 DATETIME DATE SMALLDATETIME DATE 其它 TEXT CLOB IMAGE BLOB BIT NUMBER(1)
二、表(主键、外键、CHECK、UNIQUE、DEFAULT、INDEX) 在创建表及其主键、外键、CHECK、UNIQUE、DEFAULT、INDEX时,SQL SERVER 与ORACLE的语法大致相同。主要区别如下: (1) Oracle定义表字段的default属性紧跟字段类型之后,如下: Create table MZ_Ghxx ( ghlxh number primay key , rq date default sysdate not null, …. ) 而不能写成 Create table MZ_Ghxx ( ghlxh number primay key , rq date not null default sysdate, …. )
三、存储过程/函数
过程与函数的区别 函数可以返回一个值给调用环境;而过程不能,过程只能通过返回参数(带“OUT”或“IN OUT”)传回去数据。
SQLSERVER中存储过程的结构大致如下 CREATE PROCEDURE procedure_name
AS DECLARE
BEGIN
END ORACLE中存储过程的结构大致如下 CREATE OR REPLACE PROCEDURE procedure_name ( ) AS
BEGIN
EXCEPTION
END ;
ORACLE端FUNCTION语法说明 CREATE [OR REPLACE] FUNCTION function_name [(argument [{IN | OUT | IN OUT }] ) type, … [(argument [{IN | OUT | IN OUT }] ) type RETURN return_type {IS | AS} BEGIN … END;
四、变量赋值 在SQL SERVER语句中用如下语句对局部变量赋值(初始值或 数据库表的字段值或表达式): “SELECT 局部变量名 = 所赋值(初始值或数据库表的字段值或表达式)”; 而在ORACLE中,将初始值赋给局部变量时,用如下语句: “局部变量名 : = 所赋值(初始值或表达式);” , 将检索出的字段值赋给局部变量时,用如下语句: “SELECT 数据库表的字段值 INTO 局部变量名 …” 。
五、常用函数比较(以下的exp为expression的缩写)
Sql server orcale 字符类函数 Ascii(char_exp) Ascii(str_exp) Char(int_exp) Chr(int_exp) Datalength(char_exp) Length(str_exp) Substring(exp, start, length) Substr(exp, start, length) Upper(char_exp) Upper(str_exp) Lower(char_exp) Lower(str_exp) Stuff(char_exp1,start,length, Char_exp2) Translate(str_exp,from_str,to_str) Ltrim(char_exp) Ltrim(str_exp1 [,str_exp2]) Rtrim(char_exp) Rtrim(str_exp1 [,str_exp2]) 日期类函数 Getdate() Sysdate 数学类函数 Abs(numeric_exp) Abs(number_exp) Ceiling(numeric_exp) Ceil(number_exp) Exp(float_exp) Exp(number_exp) Floor(numeric_exp) Floor(number_exp) Power(numeric_exp,int_exp) Power(number_exp1,number_exp2) Round(numeric_exp,int_exp) Round(number_exp1 [,number_exp2]) Sign(int_exp) Sign(number_exp) Sqrt(float_exp) Sqrt(number_exp) 转换函数 Convert(datatype[(length)],exp,format) To_char(datatype,str_format) Convert(datatype[(length)],exp,format)s To_date(str_exp,date_format) Convert(datatype[(length)],exp,format) To_number(str_exp,num_format) 其它函数 AVG([ALL | DISTINCT] col) AVG([ALL | DISTINCT] col) COUNT({[ALL | DISTINCT] col] | *}) COUNT({[ALL | DISTINCT] col} | *)) MAX([ALL | DISTINCT] col) MAX([ALL | DISTINCT] col) MIN([ALL | DISTINCT] col) MIN([ALL | DISTINCT] col) SUM([ALL | DISTINCT] col) SUM([ALL | DISTINCT] col) STDEV(col) STDDEV(col) VAR(col) VARIANCE(col) ISNULL(check_exp, replace_value) NVL(check_exp, replace_value) CASE DECCODE
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |